import request from "../../utils/request";

Page({
  // wxml中只能找到data中变量的数据
  // data中应该存放 视图渲染要用到的数据 
  // data 中数据越多 页面越卡
  data:{
    // 左侧的标题数组
    leftMenus:[],
    // 右侧的内容列表
    rightGoods:[],
    // 被激活的索引
    currentIndex:0,
    // 初始化的高度
    scrollTop: 0
  },
  // 全局数据
  Cates:[],
  // 打开分类页面的时候，先做一个判断
  // 判断本地存储中有没有旧数据
  // 1 假如没有旧数据
    //  直接发送请求获取新的数据
    //  更新数据到缓存中
  // 2 假如有旧数据，判断这个数据有没有过期
    // 1 数据过期了
        //  直接发送请求获取新数据，更新数据到缓存中
    // 2 数据没有过期，才使用旧的缓存的数据  
  onLoad(){
      // 先判断缓存中有没有数据
      const cates = wx.getStorageSync('cates');
      if(!cates){
        console.log("没数据，发送请求")
        this.getCates();
      }else{
        // 判断数据有没有过期
        if(Date.now() - cates.time >10*1000){
          console.log("数据过期了,重新发送请求");
          this.getCates();
        }else{
          // 没有过期
          console.log("没有过期");
          this.Cates = cates.list;
          this.setData({
            leftMenus:this.Cates.map(v=>v.cat_name),
            rightGoods:this.Cates[0].children
          })
        }
      }
  },
  // 发送异步请求
  getCates(){
    request({url:"categories"})
    .then(res=>{
      this.Cates = res.data.message;
      // 给左侧菜单数组赋值
      // console.log(this.Cates.map(v=>v.cat_name));
      // console.log(this.Cates[0].children);
      this.setData({
        leftMenus:this.Cates.map(v=>v.cat_name),
        rightGoods:this.Cates[0].children
      })
      // 将数据存入缓存中
      wx.setStorageSync("cates",{list:this.Cates,time:Date.now()});
    })
  },
  // 左侧菜单的点击事件
  handleMenusTap(e){
    const currentIndex = e.currentTarget.dataset.index
    this.setData({
      currentIndex,
      // 右侧内容
      rightGoods:this.Cates[currentIndex].children,
      // 点击的时候重新回到顶部
      scrollTop:0
    })
  }
})